home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / modula2 / lpr / mogli / vdi.def < prev   
Encoding:
Modula Definition  |  1994-09-22  |  34.8 KB  |  1,123 lines

  1.  
  2.   (* --------------------------------------------------------------------- *)
  3.   (*           VDI (Virtual Device Interface) DEFINITION MODULE            *)
  4.   (* --------------------------------------------------------------------- *)
  5.   (*     Einheitliche Modula-2 Schnittstelle zum GEM VDI des ATARI ST      *)
  6.   (* --------------------------------------------------------------------- *)
  7.   (*                           Uwe Brahm                                   *)
  8.   (*                      Johannes Schneiders                              *)
  9.   (* --------------------------------------------------------------------- *)
  10.   (*            Version 1.0 von Mittwoch dem 1. November 1989              *)
  11.   (* --------------------------------------------------------------------- *)
  12.   (* Alle Rechte vorbehalten. Insbesondere bleiben Änderungen jeglicher    *)
  13.   (* Art, sowie Anpassungen an andere Compiler bzw. Computersysteme        *)
  14.   (* ausschließlich uns vorbehalten.                                       *)
  15.   (*          Copyright © 1989 by Uwe Brahm, Johannes Schneiders.          *)
  16.   (* --------------------------------------------------------------------- *)
  17.   (* Es wurden alle erdenklichen Maßnahmen getroffen, um die Korrektheit   *)
  18.   (* dieser Bibliothek zu gewährleisten. Wir können dennoch keine Gewähr   *)
  19.   (* für die Vollständigkeit und Korrektheit übernehmen und schließen      *)
  20.   (* deshalb alle Gewährleistungsansprüche, die durch Fehler in der        *)
  21.   (* Software entstehen, ausdrücklich aus.                                 *)
  22.   (* --------------------------------------------------------------------- *)
  23.   (* Um einen einheitlichen Standard auch in Zukunft gewährleisten zu      *)
  24.   (* können, existiert eine zentrale Softwarewartung der Bibliotheken.     *)
  25.   (* Sollten Sie Fehler entdecken oder Verbesserungsvorschläge haben,      *)
  26.   (* wenden Sie sich schriftlich an:                                       *)
  27.   (*  U.Brahm, J.Schneiders,  Carlo-Schmid-Straße 15, 6750 Kaiserslautern  *)
  28.   (* --------------------------------------------------------------------- *)
  29.   (* Unterstützte Compiler:                                                *)
  30.   (*                    TDI Modula-2  (Version 3.00)                       *)
  31.   (*                    SPC Modula-2  (Version 1.42)                       *)
  32.   (* --------------------------------------------------------------------- *)
  33.   (* ATARI ST ist ein Warenzeichen der Firma Atari                         *)
  34.   (* GEM ist ein Warenzeichen der Firma Digital Research                   *)
  35.   (* --------------------------------------------------------------------- *)
  36.  
  37.  
  38. DEFINITION MODULE VDI;
  39.  
  40.  
  41.   FROM SYSTEM IMPORT
  42.     ADDRESS;
  43.  
  44.   (* ------------------- VDI Allgemeine Deklarationen -------------------- *)
  45.  
  46.  
  47.   CONST
  48.     MaxWorkInSize  =  11;
  49.     MaxWorkOutSize = 158;
  50.  
  51.  
  52.   TYPE
  53.     WorkInType  = ARRAY [0..MaxWorkInSize  - 1]  OF INTEGER;
  54.     WorkOutType = ARRAY [0..MaxWorkOutSize - 1]  OF INTEGER;
  55.  
  56.  
  57.   (* ---------------------- VDI Kontroll-Bibliothek ---------------------- *)
  58.  
  59.  
  60.   CONST
  61.     (* ClippingFlag : INTEGER *)
  62.     ClipOff = 0;
  63.     ClipOn  = 1;
  64.  
  65.  
  66.   PROCEDURE OpenWorkstation (WorkIn      : WorkInType;
  67.                              VAR Handle  : INTEGER;
  68.                              VAR WorkOut : WorkOutType);
  69.  
  70.     (* VDI-Funktionsnummer: 1 *)
  71.  
  72.  
  73.   PROCEDURE CloseWorkstation (Handle : INTEGER);
  74.  
  75.     (* VDI-Funktionsnummer: 2 *)
  76.  
  77.  
  78.   PROCEDURE OpenVirtualScreenWorkstation (WorkIn      : WorkInType;
  79.                                           VAR Handle  : INTEGER;
  80.                                           VAR WorkOut : WorkOutType);
  81.  
  82.     (* VDI-Funktionsnummer: 100 *)
  83.  
  84.  
  85.   PROCEDURE CloseVirtualScreenWorkstation (Handle : INTEGER);
  86.  
  87.     (* VDI-Funktionsnummer: 101 *)
  88.  
  89.  
  90.   PROCEDURE ClearWorkstation (Handle : INTEGER);
  91.  
  92.     (* VDI-Funktionsnummer: 3 *)
  93.  
  94.  
  95.   PROCEDURE UpdateWorkstation (Handle : INTEGER);
  96.  
  97.     (* VDI-Funktionsnummer: 4 *)
  98.  
  99.  
  100.   PROCEDURE LoadFonts (Handle              : INTEGER;
  101.                        FontIndex           : INTEGER;
  102.                        VAR AdditionalFonts : INTEGER);
  103.  
  104.     (* VDI-Funktionsnummer: 119 *)
  105.  
  106.  
  107.   PROCEDURE UnloadFonts (Handle    : INTEGER;
  108.                          FontIndex : INTEGER);
  109.  
  110.     (* VDI-Funktionsnummer: 120 *)
  111.  
  112.  
  113.   PROCEDURE SetClipping (Handle       : INTEGER;
  114.                          Flag         : INTEGER (*0..1*);
  115.                          VAR PointsXY : ARRAY OF INTEGER);
  116.  
  117.     (* VDI-Funktionsnummer: 129 *)
  118.  
  119.  
  120.   (* ---------------------- VDI Ausgabe-Bibliothek  ---------------------- *)
  121.  
  122.  
  123.   PROCEDURE PolyLine (Handle        : INTEGER;
  124.                       Count         : INTEGER;
  125.                       VAR PointsXY  : ARRAY OF INTEGER);
  126.  
  127.     (* VDI-Funktionsnummer: 6 *)
  128.  
  129.  
  130.   PROCEDURE PolyMarker (Handle       : INTEGER;
  131.                         Count        : INTEGER;
  132.                         VAR PointsXY : ARRAY OF INTEGER);
  133.  
  134.     (* VDI-Funktionsnummer: 7 *)
  135.  
  136.  
  137.   PROCEDURE GraphicText (Handle   : INTEGER;
  138.                          XPos     : INTEGER;
  139.                          YPos     : INTEGER;
  140.                          VAR Text : ARRAY OF CHAR);
  141.  
  142.     (* VDI-Funktionsnummer: 8 *)
  143.  
  144.  
  145.   PROCEDURE FilledPolygon (Handle       : INTEGER;
  146.                            Count        : INTEGER;
  147.                            VAR PointsXY : ARRAY OF INTEGER);
  148.  
  149.     (* VDI-Funktionsnummer: 9 *)
  150.  
  151.  
  152.   PROCEDURE CellArray (Handle       : INTEGER;
  153.                        VAR PointsXY : ARRAY OF INTEGER;
  154.                        RowLength    : INTEGER;
  155.                        ElementsUsed : INTEGER;
  156.                        NumberRows   : INTEGER;
  157.                        WriteMode    : INTEGER;
  158.                        VAR Colors   : ARRAY OF INTEGER);
  159.  
  160.     (* VDI-Funktionsnummer: 10 *)
  161.  
  162.  
  163.   PROCEDURE Fill (Handle : INTEGER;
  164.                   XPos   : INTEGER;
  165.                   YPos   : INTEGER;
  166.                   Color  : INTEGER);
  167.  
  168.     (* VDI-Funktionsnummer: 103 *)
  169.  
  170.  
  171.   PROCEDURE FilledRectangle (Handle       : INTEGER;
  172.                              VAR PointsXY : ARRAY OF INTEGER);
  173.  
  174.     (* VDI-Funktionsnummer: 114 *)
  175.  
  176.  
  177.   PROCEDURE Bar (Handle       : INTEGER;
  178.                  VAR PointsXY : ARRAY OF INTEGER);
  179.  
  180.     (* VDI-Funktionsnummer: 11, GDP 1 *)
  181.  
  182.  
  183.   PROCEDURE Arc (Handle     : INTEGER;
  184.                  XPos       : INTEGER;
  185.                  YPos       : INTEGER;
  186.                  Radius     : INTEGER;
  187.                  BeginAngle : INTEGER;
  188.                  EndAngle   : INTEGER);
  189.  
  190.     (* VDI-Funktionsnummer: 11, GDP 2 *)
  191.  
  192.  
  193.   PROCEDURE Pie (Handle     : INTEGER;
  194.                  XPos       : INTEGER;
  195.                  YPos       : INTEGER;
  196.                  Radius     : INTEGER;
  197.                  BeginAngle : INTEGER;
  198.                  EndAngle   : INTEGER);
  199.  
  200.     (* VDI-Funktionsnummer: 11, GDP 3 *)
  201.  
  202.  
  203.   PROCEDURE Circle (Handle : INTEGER;
  204.                     XPos   : INTEGER;
  205.                     YPos   : INTEGER;
  206.                     Radius : INTEGER);
  207.  
  208.     (* VDI-Funktionsnummer: 11, GDP 4 *)
  209.  
  210.  
  211.   PROCEDURE Ellipse (Handle  : INTEGER;
  212.                      XPos    : INTEGER;
  213.                      YPos    : INTEGER;
  214.                      XRadius : INTEGER;
  215.                      YRadius : INTEGER);
  216.  
  217.     (* VDI-Funktionsnummer: 11, GDP 5 *)
  218.  
  219.  
  220.   PROCEDURE EllipticalArc (Handle     : INTEGER;
  221.                            XPos       : INTEGER;
  222.                            YPos       : INTEGER;
  223.                            XRadius    : INTEGER;
  224.                            YRadius    : INTEGER;
  225.                            BeginAngle : INTEGER;
  226.                            EndAngle   : INTEGER);
  227.  
  228.     (* VDI-Funktionsnummer: 11, GDP 6 *)
  229.  
  230.  
  231.   PROCEDURE EllipticalPie (Handle     : INTEGER;
  232.                            XPos       : INTEGER;
  233.                            YPos       : INTEGER;
  234.                            XRadius    : INTEGER;
  235.                            YRadius    : INTEGER;
  236.                            BeginAngle : INTEGER;
  237.                            EndAngle   : INTEGER);
  238.  
  239.     (* VDI-Funktionsnummer: 11, GDP 7 *)
  240.  
  241.  
  242.   PROCEDURE RoundedRectangle (Handle       : INTEGER;
  243.                               VAR PointsXY : ARRAY OF INTEGER);
  244.  
  245.     (* VDI-Funktionsnummer: 11, GDP 8 *)
  246.  
  247.  
  248.   PROCEDURE FilledRoundedRectangle (Handle       : INTEGER;
  249.                                     VAR PointsXY : ARRAY OF INTEGER);
  250.  
  251.     (* VDI-Funktionsnummer: 11, GDP 9 *)
  252.  
  253.  
  254.   PROCEDURE JustifiedText (Handle    : INTEGER;
  255.                            XPos      : INTEGER;
  256.                            YPos      : INTEGER;
  257.                            VAR Text  : ARRAY OF CHAR;
  258.                            TextWidth : INTEGER;
  259.                            WordSpace : INTEGER;
  260.                            CharSpace : INTEGER);
  261.  
  262.     (* VDI-Funktionsnummer: 11, GDP 10 *)
  263.  
  264.  
  265.   (* ---------------------- VDI Attribut-Bibliothek ---------------------- *)
  266.  
  267.  
  268.   CONST
  269.     (* WritingMode : INTEGER *)
  270.     Normal      = 0;
  271.     Transparent = 1;
  272.     XOR         = 2;
  273.     Reverse     = 3;
  274.     (* LineEndType : INTEGER *)
  275.     Cornered = 0;
  276.     Arrowed  = 1;
  277.     Rounded  = 2;
  278.     (* MarkerType : INTEGER *)
  279.     Point  = 0;
  280.     Plus   = 1;
  281.     Star   = 2;
  282.     Square = 3;
  283.     Cross  = 4;
  284.     Rhomb  = 5;
  285.     (* TextEffect : BITSET *)
  286.     Bold = 0;
  287.     Light = 1;
  288.     Skewed = 2;
  289.     Under  = 3;
  290.     Hollow = 4;
  291.     Shadow = 5;
  292.     (* TextAlignment : INTEGER *)
  293.     Left   = 0;
  294.     Center = 1;
  295.     Right  = 2;
  296.     BaseLine    = 0;
  297.     HalfLine    = 1;
  298.     AscendLine  = 2;
  299.     BottomLine  = 3;
  300.     DescendLine = 4;
  301.     TopLine     = 5;
  302.     (* FillInteriorType : INTEGER *)
  303.     None        = 0;
  304.     Solid       = 1;
  305.     Pattern     = 2;
  306.     Hatchure    = 3;
  307.     UserDefined = 4;
  308.     (* PerimeterVisibility : INTEGER *)
  309.     PerimeterOff = 0;
  310.     PerimeterOn  = 1;
  311.  
  312.  
  313.   PROCEDURE SetWritingMode (Handle      : INTEGER;
  314.                             Mode        : INTEGER;
  315.                             VAR SetMode : INTEGER);
  316.  
  317.     (* VDI-Funktionsnummer: 32 *)
  318.  
  319.  
  320.   PROCEDURE SetColorRepresentation (Handle     : INTEGER;
  321.                                     Color      : INTEGER;
  322.                                     VAR RGBIn  : ARRAY OF INTEGER);
  323.  
  324.     (* VDI-Funktionsnummer: 14 *)
  325.  
  326.  
  327.   PROCEDURE SetLineType (Handle      : INTEGER;
  328.                          Type        : INTEGER;
  329.                          VAR SetType : INTEGER);
  330.  
  331.     (* VDI-Funktionsnummer: 15 *)
  332.  
  333.  
  334.   PROCEDURE DefineLinePattern (Handle  : INTEGER;
  335.                                Pattern : INTEGER);
  336.  
  337.     (* VDI-Funktionsnummer: 113 *)
  338.  
  339.  
  340.   PROCEDURE SetLineWidth (Handle       : INTEGER;
  341.                           Width        : INTEGER;
  342.                           VAR SetWidth : INTEGER);
  343.  
  344.     (* VDI-Funktionsnummer: 16 *)
  345.  
  346.  
  347.   PROCEDURE SetLineColor (Handle       : INTEGER;
  348.                           Color        : INTEGER;
  349.                           VAR SetColor : INTEGER);
  350.  
  351.     (* VDI-Funktionsnummer: 17 *)
  352.  
  353.   PROCEDURE SetLineEndType (Handle    : INTEGER;
  354.                             BeginType : INTEGER;
  355.                             EndType   : INTEGER);
  356.  
  357.     (* VDI-Funktionsnummer: 108 *)
  358.  
  359.  
  360.   PROCEDURE SetMarkerType (Handle      : INTEGER;
  361.                            Type        : INTEGER;
  362.                            VAR SetType : INTEGER);
  363.  
  364.     (* VDI-Funktionsnummer: 18 *)
  365.  
  366.  
  367.   PROCEDURE SetMarkerHeight (Handle        : INTEGER;
  368.                              Height        : INTEGER;
  369.                              VAR SetHeight : INTEGER);
  370.  
  371.     (* VDI-Funktionsnummer: 19 *)
  372.  
  373.  
  374.   PROCEDURE SetMarkerColor (Handle       : INTEGER;
  375.                             Color        : INTEGER;
  376.                             VAR SetColor : INTEGER);
  377.  
  378.     (* VDI-Funktionsnummer: 20 *)
  379.  
  380.  
  381.   PROCEDURE SetCharHeightAbsolute (Handle         : INTEGER;
  382.                                    Height         : INTEGER;
  383.                                    VAR CharWidth  : INTEGER;
  384.                                    VAR CharHeight : INTEGER;
  385.                                    VAR CellWidth  : INTEGER;
  386.                                    VAR CellHeight : INTEGER);
  387.  
  388.     (* VDI-Funktionsnummer: 12 *)
  389.  
  390.  
  391.   PROCEDURE SetCharHeightPoints (Handle         : INTEGER;
  392.                                  Points         : INTEGER;
  393.                                  VAR CharWidth  : INTEGER;
  394.                                  VAR CharHeight : INTEGER;
  395.                                  VAR CellWidth  : INTEGER;
  396.                                  VAR CellHeight : INTEGER;
  397.                                  VAR SetPoints  : INTEGER);
  398.  
  399.     (* VDI-Funktionsnummer: 107 *)
  400.  
  401.  
  402.   PROCEDURE SetTextRotation (Handle       : INTEGER;
  403.                              Angle        : INTEGER;
  404.                              VAR SetAngle : INTEGER);
  405.  
  406.     (* VDI-Funktionsnummer: 13 *)
  407.  
  408.  
  409.   PROCEDURE SetTextFont (Handle      : INTEGER;
  410.                          FontIndex   : INTEGER;
  411.                          VAR SetFont : INTEGER);
  412.  
  413.     (* VDI-Funktionsnummer: 21 *)
  414.  
  415.  
  416.   PROCEDURE SetTextColor (Handle       : INTEGER;
  417.                           Color        : INTEGER;
  418.                           VAR SetColor : INTEGER);
  419.  
  420.     (* VDI-Funktionsnummer: 22 *)
  421.  
  422.  
  423.   PROCEDURE SetTextEffects (Handle        : INTEGER;
  424.                             Effect        : BITSET;
  425.                             VAR SetEffect : BITSET);
  426.  
  427.     (* VDI-Funktionsnummer: 106 *)
  428.  
  429.  
  430.   PROCEDURE SetTextAlignment (Handle                : INTEGER;
  431.                               HorizAlignment        : INTEGER;
  432.                               VertAlignment         : INTEGER;
  433.                               VAR SetHorizAlignment : INTEGER;
  434.                               VAR SetVertAlignment  : INTEGER);
  435.  
  436.     (* VDI-Funktionsnummer: 39 *)
  437.  
  438.  
  439.   PROCEDURE SetFillInteriorType (Handle      : INTEGER;
  440.                                  Type        : INTEGER;
  441.                                  VAR SetType : INTEGER);
  442.  
  443.     (* VDI-Funktionsnummer: 23 *)
  444.  
  445.  
  446.   PROCEDURE SetFillType (Handle      : INTEGER;
  447.                          Type        : INTEGER;
  448.                          VAR SetType : INTEGER);
  449.  
  450.     (* VDI-Funktionsnummer: 24 *)
  451.  
  452.  
  453.   PROCEDURE SetFillColor (Handle       : INTEGER;
  454.                           Color        : INTEGER;
  455.                           VAR SetColor : INTEGER);
  456.  
  457.     (* VDI-Funktionsnummer: 25 *)
  458.  
  459.  
  460.   PROCEDURE SetFillPerimeterVisibility (Handle            : INTEGER;
  461.                                         Visibility        : INTEGER;
  462.                                         VAR SetVisibility : INTEGER);
  463.  
  464.     (* VDI-Funktionsnummer: 104 *)
  465.  
  466.  
  467.   PROCEDURE DefineFillPattern (Handle      : INTEGER;
  468.                                VAR Pattern : ARRAY OF INTEGER;
  469.                                Planes      : INTEGER);
  470.  
  471.     (* VDI-Funktionsnummer: 112 *)
  472.  
  473.  
  474.   (* ----------------------- VDI Raster-Bibliothek ----------------------- *)
  475.  
  476.  
  477.   TYPE
  478.     MFDB = RECORD
  479.              Address      : ADDRESS;
  480.              Width        : INTEGER;
  481.              Height       : INTEGER;
  482.              WidthWords   : INTEGER;
  483.              RasterFormat : INTEGER;
  484.              Planes       : INTEGER;
  485.              Reserved1    : INTEGER;
  486.              Reserved2    : INTEGER;
  487.              Reserved3    : INTEGER;
  488.            END;
  489.  
  490.  
  491.   PROCEDURE CopyRasterOpaque (Handle         : INTEGER;
  492.                               WriteMode      : INTEGER;
  493.                               VAR PointsXY   : ARRAY OF INTEGER;
  494.                               VAR SourceMFDB : MFDB;
  495.                               VAR DestMFDB   : MFDB);
  496.  
  497.     (* VDI-Funktionsnummer: 109 *)
  498.  
  499.  
  500.   PROCEDURE CopyRasterTransparent (Handle         : INTEGER;
  501.                                    WriteMode      : INTEGER;
  502.                                    VAR PointsXY   : ARRAY OF INTEGER;
  503.                                    VAR SourceMFDB : MFDB;
  504.                                    VAR DestMFDB   : MFDB;
  505.                                    VAR Colors     : ARRAY OF INTEGER);
  506.  
  507.     (* VDI-Funktionsnummer: 121 *)
  508.  
  509.  
  510.   PROCEDURE TransformForm (Handle         : INTEGER;
  511.                            VAR SourceMFDB : MFDB;
  512.                            VAR DestMFDB   : MFDB);
  513.  
  514.     (* VDI-Funktionsnummer: 110 *)
  515.  
  516.  
  517.   PROCEDURE GetPixel (Handle       : INTEGER;
  518.                       XPos         : INTEGER;
  519.                       YPos         : INTEGER;
  520.                       VAR PixelSet : INTEGER;
  521.                       VAR Color    : INTEGER);
  522.  
  523.     (* VDI-Funktionsnummer: 105 *)
  524.  
  525.  
  526.   (* ---------------------- VDI Eingabe-Bibliothek ----------------------- *)
  527.  
  528.  
  529.   CONST
  530.     (* InputDevice : INTEGER *)
  531.     Locator  = 1;
  532.     Valuator = 2;
  533.     Choice   = 3;
  534.     Text     = 4;
  535.     (* InputMode : INTEGER *)
  536.     Request = 1;
  537.     Sample  = 2;
  538.     (* Status : INTEGER (InputChoiceSample) *)
  539.     NoKeyPressed = 0;
  540.     KeyPressed   = 1;
  541.     (* EchoMode : INTEGER *)
  542.     EchoOff = 0;
  543.     EchoOn  = 1;
  544.     (* Reset : INTEGER (ShowGraphicCursor) *)
  545.     ShowReset  = 0;
  546.     ShowNormal = 1;
  547.     (* MouseButtonStatus : BITSET *)
  548.     LeftButton = 0;
  549.     (* KeyboardStatus : BITSET *)
  550.     RightShift = 0;
  551.     LeftShift  = 1;
  552.     ControlKey = 2;
  553.     Alternate  = 3;
  554.  
  555.  
  556.   PROCEDURE SetInputMode (Handle      : INTEGER;
  557.                           Device      : INTEGER;
  558.                           Mode        : INTEGER;
  559.                           VAR SetMode : INTEGER);
  560.  
  561.     (* VDI-Funktionsnummer: 33 *)
  562.  
  563.  
  564.   PROCEDURE InputLocatorRequest (Handle      : INTEGER;
  565.                                  XPos        : INTEGER;
  566.                                  YPos        : INTEGER;
  567.                                  VAR EndXPos : INTEGER;
  568.                                  VAR EndYPos : INTEGER;
  569.                                  VAR TermKey : INTEGER);
  570.  
  571.     (* VDI-Funktionsnummer: 28 *)
  572.  
  573.  
  574.   PROCEDURE InputLocatorSample (Handle      : INTEGER;
  575.                                 XPos        : INTEGER;
  576.                                 YPos        : INTEGER;
  577.                                 VAR EndXPos : INTEGER;
  578.                                 VAR EndYPos : INTEGER;
  579.                                 VAR Key     : INTEGER;
  580.                                 VAR Status  : BITSET);
  581.  
  582.     (* VDI-Funktionsnummer: 28 *)
  583.  
  584.  
  585.   PROCEDURE InputValuatorRequest (Handle       : INTEGER;
  586.                                   BeginValue   : INTEGER;
  587.                                   VAR EndValue : INTEGER;
  588.                                   VAR TermKey  : INTEGER);
  589.  
  590.     (* VDI-Funktionsnummer: 29 *)
  591.     (* Im ROM-Treiber nicht implementiert *)
  592.  
  593.   PROCEDURE InputValuatorSample (Handle       : INTEGER;
  594.                                  BeginValue   : INTEGER;
  595.                                  VAR EndValue : INTEGER;
  596.                                  VAR Key      : INTEGER;
  597.                                  VAR Status   : INTEGER);
  598.  
  599.     (* VDI-Funktionsnummer: 29 *)
  600.     (* Im ROM-Treiber nicht implementiert *)
  601.  
  602.  
  603.   PROCEDURE InputChoiceRequest (Handle      : INTEGER;
  604.                                 InitKey     : INTEGER;
  605.                                 VAR TermKey : INTEGER);
  606.  
  607.     (* VDI-Funktionsnummer: 30 *)
  608.  
  609.  
  610.   PROCEDURE InputChoiceSample (Handle     : INTEGER;
  611.                                VAR Key    : INTEGER;
  612.                                VAR Status : INTEGER);
  613.  
  614.     (* VDI-Funktionsnummer: 30 *)
  615.  
  616.  
  617.   PROCEDURE InputTextRequest (Handle      : INTEGER;
  618.                               MaxLength   : INTEGER;
  619.                               EchoMode    : INTEGER;
  620.                               VAR EchoPos : ARRAY OF INTEGER;
  621.                               VAR Text    : ARRAY OF CHAR);
  622.  
  623.     (* VDI-Funktionsnummer: 31 *)
  624.  
  625.  
  626.   PROCEDURE InputTextSample (Handle     : INTEGER;
  627.                              MaxLength  : INTEGER;
  628.                              EchoMode   : INTEGER;
  629.                              EchoPos    : ARRAY OF INTEGER;
  630.                              VAR Text   : ARRAY OF CHAR;
  631.                              VAR Status : INTEGER);
  632.  
  633.     (* VDI-Funktionsnummer: 31 *)
  634.  
  635.  
  636.   PROCEDURE SetMouseForm (Handle        : INTEGER;
  637.                           VAR MouseForm : ARRAY OF INTEGER);
  638.  
  639.     (* VDI-Funktionsnummer: 111 *)
  640.  
  641.  
  642.   PROCEDURE ExchangeTimerInterruptVector (Handle             : INTEGER;
  643.                                           NewCodeAddress     : ADDRESS;
  644.                                           VAR OldCodeAddress : ADDRESS;
  645.                                           VAR TimeInterval   : INTEGER);
  646.  
  647.     (* VDI-Funktionsnummer: 118 *)
  648.  
  649.  
  650.   PROCEDURE ShowGraphicCursor (Handle : INTEGER;
  651.                                Reset  : INTEGER);
  652.  
  653.     (* VDI-Funktionsnummer: 122 *)
  654.  
  655.  
  656.   PROCEDURE HideGraphicCursor (Handle : INTEGER);
  657.  
  658.     (* VDI-Funktionsnummer: 123 *)
  659.  
  660.  
  661.   PROCEDURE SampleMouseButtonState (Handle               : INTEGER;
  662.                                     VAR MouseButtonState : BITSET;
  663.                                     VAR XPos             : INTEGER;
  664.                                     VAR YPos             : INTEGER);
  665.  
  666.     (* VDI-Funktionsnummer: 124 *)
  667.  
  668.  
  669.   PROCEDURE ExchangeButtonChangeVector (Handle             : INTEGER;
  670.                                         NewCodeAddress     : ADDRESS;
  671.                                         VAR OldCodeAddress : ADDRESS);
  672.  
  673.     (* VDI-Funktionsnummer: 125 *)
  674.  
  675.   PROCEDURE ExchangeMouseMovementVector (Handle             : INTEGER;
  676.                                          NewCodeAddress     : ADDRESS;
  677.                                          VAR OldCodeAddress : ADDRESS);
  678.  
  679.     (* VDI-Funktionsnummer: 126 *)
  680.  
  681.  
  682.   PROCEDURE ExchangeCursorChangeVector (Handle             : INTEGER;
  683.                                         NewCodeAddress     : ADDRESS;
  684.                                         VAR OldCodeAddress : ADDRESS);
  685.  
  686.     (* VDI-Funktionsnummer: 127 *)
  687.  
  688.  
  689.   PROCEDURE SampleKeyboardState (Handle            : INTEGER;
  690.                                  VAR KeyBoardState : BITSET);
  691.  
  692.     (* VDI-Funktionsnummer: 128 *)
  693.  
  694.  
  695.  
  696.   (* ---------------------- VDI Auskunft-Bibliothek ---------------------- *)
  697.  
  698.  
  699.   PROCEDURE ExtendedInquire (Handle      : INTEGER;
  700.                              Mode        : INTEGER;
  701.                              VAR WorkOut : WorkOutType);
  702.  
  703.     (* VDI-Funktionsnummer: 102 *)
  704.  
  705.  
  706.   PROCEDURE InquireColorRepresentation (Handle  : INTEGER;
  707.                                         Color   : INTEGER;
  708.                                         Mode    : INTEGER;
  709.                                         VAR RGB : ARRAY OF INTEGER);
  710.  
  711.     (* VDI-Funktionsnummer: 26 *)
  712.  
  713.  
  714.   PROCEDURE InquireLineAttributes (Handle         : INTEGER;
  715.                                    VAR Attributes : ARRAY OF INTEGER);
  716.  
  717.     (* VDI-Funktionsnummer: 35 *)
  718.  
  719.  
  720.   PROCEDURE InquireMarkerAttributes (Handle         : INTEGER;
  721.                                      VAR Attributes : ARRAY OF INTEGER);
  722.  
  723.     (* VDI-Funktionsnummer: 36 *)
  724.  
  725.  
  726.   PROCEDURE InquireFillAttributes (Handle         : INTEGER;
  727.                                    VAR Attributes : ARRAY OF INTEGER);
  728.  
  729.     (* VDI-Funktionsnummer: 37 *)
  730.  
  731.  
  732.   PROCEDURE InquireTextAttributes (Handle         : INTEGER;
  733.                                    VAR Attributes : ARRAY OF INTEGER);
  734.  
  735.     (* VDI-Funktionsnummer: 38 *)
  736.  
  737.  
  738.   PROCEDURE InquireTextExtent (Handle     : INTEGER;
  739.                                VAR Text   : ARRAY OF CHAR;
  740.                                VAR Extent : ARRAY OF INTEGER);
  741.  
  742.     (* VDI-Funktionsnummer: 116 *)
  743.  
  744.  
  745.   PROCEDURE InquireCharCellWidth (Handle         : INTEGER;
  746.                                   Character      : CHAR;
  747.                                   VAR CellWidth  : INTEGER;
  748.                                   VAR LeftDelta  : INTEGER;
  749.                                   VAR RightDelta : INTEGER;
  750.                                   VAR Status     : INTEGER);
  751.  
  752.     (* VDI-Funktionsnummer: 117 *)
  753.  
  754.  
  755.   PROCEDURE InquireFontName (Handle           : INTEGER;
  756.                              FontIndex        : INTEGER;
  757.                              VAR InquiredFont : INTEGER;
  758.                              VAR FontName     : ARRAY OF CHAR);
  759.  
  760.     (* VDI-Funktionsnummer: 130 *)
  761.  
  762.  
  763.   PROCEDURE InquireCellArray (Handle           : INTEGER;
  764.                               VAR PointsXY     : ARRAY OF INTEGER;
  765.                               RowLength        : INTEGER;
  766.                               NumRows          : INTEGER;
  767.                               VAR ElementsUsed : INTEGER;
  768.                               VAR RowsUsed     : INTEGER;
  769.                               VAR Status       : INTEGER;
  770.                               VAR Colors       : ARRAY OF INTEGER);
  771.  
  772.     (* VDI-Funktionsnummer: 27 *)
  773.  
  774.  
  775.   PROCEDURE InquireInputMode (Handle   : INTEGER;
  776.                               Device   : INTEGER;
  777.                               VAR Mode : INTEGER);
  778.  
  779.     (* VDI-Funktionsnummer: 115 *)
  780.  
  781.  
  782.   PROCEDURE InquireFontInfo (Handle        : INTEGER;
  783.                              VAR MinADE    : INTEGER;
  784.                              VAR MaxADE    : INTEGER;
  785.                              VAR Distances : ARRAY OF INTEGER;
  786.                              VAR MaxWidth  : INTEGER;
  787.                              VAR Effects   : ARRAY OF INTEGER);
  788.  
  789.     (* VDI-Funktionsnummer: 131 *)
  790.  
  791.  
  792.   PROCEDURE InquireJustifiedText (Handle      : INTEGER;
  793.                                   XPos        : INTEGER;
  794.                                   YPos        : INTEGER;
  795.                                   Text        : ARRAY OF CHAR;
  796.                                   TextWidth   : INTEGER;
  797.                                   WordSpace   : INTEGER;
  798.                                   CharSpace   : INTEGER;
  799.                                   VAR Offsets : ARRAY OF INTEGER);
  800.  
  801.     (* VDI-Funktionsnummer: 132 *)
  802.     (* Ab GEM 2.0 implementiert *)
  803.  
  804.  
  805.   (* ----------------------- VDI Escape-Bibliothek ----------------------- *)
  806.  
  807.  
  808.   PROCEDURE InquireAlphaCharCells (Handle     : INTEGER;
  809.                                    VAR Rows   : INTEGER;
  810.                                    VAR Colums : INTEGER);
  811.  
  812.     (* VDI-Funktionsnummer: 5, Escape: 1 *)
  813.  
  814.  
  815.   PROCEDURE ExitAlphaMode (Handle : INTEGER);
  816.  
  817.     (* VDI-Funktionsnummer: 5, Escape: 2 *)
  818.  
  819.  
  820.   PROCEDURE EnterAlphaMode (Handle : INTEGER);
  821.  
  822.     (* VDI-Funktionsnummer: 5, Escape: 3 *)
  823.  
  824.  
  825.   PROCEDURE AlphaCursorUp (Handle : INTEGER);
  826.  
  827.     (* VDI-Funktionsnummer: 5, Escape:  *)
  828.  
  829.  
  830.   PROCEDURE AlphaCursorDown (Handle : INTEGER);
  831.  
  832.     (* VDI-Funktionsnummer: 5, Escape: 5 *)
  833.  
  834.  
  835.   PROCEDURE AlphaCursorRight (Handle  : INTEGER);
  836.  
  837.     (* VDI-Funktionsnummer: 5, Escape: 6 *)
  838.  
  839.  
  840.   PROCEDURE AlphaCursorLeft (Handle : INTEGER);
  841.  
  842.     (* VDI-Funktionsnummer: 5, Escape: 7 *)
  843.  
  844.  
  845.   PROCEDURE AlphaCursorHome (Handle : INTEGER);
  846.  
  847.     (* VDI-Funktionsnummer: 5, Escape: 8 *)
  848.  
  849.  
  850.   PROCEDURE EraseToEndOfScreen (Handle : INTEGER);
  851.  
  852.     (* VDI-Funktionsnummer: 5, Escape: 9 *)
  853.  
  854.  
  855.   PROCEDURE EraseToEndOfLine (Handle : INTEGER);
  856.  
  857.     (* VDI-Funktionsnummer: 5, Escape: 10 *)
  858.  
  859.  
  860.   PROCEDURE PlaceAlphaCursor (Handle : INTEGER;
  861.                               Row    : INTEGER;
  862.                               Column : INTEGER);
  863.  
  864.     (* VDI-Funktionsnummer: 5, Escape: 11 *)
  865.  
  866.  
  867.   PROCEDURE AlphaText (Handle   : INTEGER;
  868.                        VAR Text : ARRAY OF CHAR);
  869.  
  870.     (* VDI-Funktionsnummer: 5, Escape: 12 *)
  871.  
  872.  
  873.   PROCEDURE ReverseVideoOn (Handle : INTEGER);
  874.  
  875.     (* VDI-Funktionsnummer: 5, Escape: 13 *)
  876.  
  877.  
  878.   PROCEDURE ReverseVideoOff (Handle : INTEGER);
  879.  
  880.     (* VDI-Funktionsnummer: 5, Escape: 14 *)
  881.  
  882.  
  883.   PROCEDURE InquireAlphaCursor (Handle     : INTEGER;
  884.                                 VAR Row    : INTEGER;
  885.                                 VAR Column : INTEGER);
  886.  
  887.     (* VDI-Funktionsnummer: 5, Escape: 15 *)
  888.  
  889.  
  890.   PROCEDURE InquireTablet (Handle     : INTEGER;
  891.                            VAR Status : INTEGER);
  892.  
  893.     (* VDI-Funktionsnummer: 5, Escape: 16 *)
  894.  
  895.  
  896.   PROCEDURE HardCopy (Handle : INTEGER);
  897.  
  898.     (* VDI-Funktionsnummer: 5, Escape: 17 *)
  899.  
  900.  
  901.   PROCEDURE PlaceGraphicCursor (Handle : INTEGER;
  902.                                 XPos   : INTEGER;
  903.                                 YPos   : INTEGER);
  904.  
  905.     (* VDI-Funktionsnummer: 5, Escape: 18 *)
  906.  
  907.  
  908.   PROCEDURE RemoveLastGraphicCursor (Handle : INTEGER);
  909.  
  910.     (* VDI-Funktionsnummer: 5, Escape: 19 *)
  911.  
  912.  
  913.   PROCEDURE PrinterFormAdvance (Handle : INTEGER);
  914.  
  915.     (* VDI-Funktionsnummer: 5, Escape: 20 *)
  916.  
  917.  
  918.   PROCEDURE PrintWindow (Handle       : INTEGER;
  919.                          VAR PointsXY : ARRAY OF INTEGER);
  920.  
  921.     (* VDI-Funktionsnummer: 5, Escape: 21 *)
  922.  
  923.  
  924.   PROCEDURE PrinterClearDisplayList (Handle : INTEGER);
  925.  
  926.     (* VDI-Funktionsnummer: 5, Escape: 22 *)
  927.  
  928.  
  929.   PROCEDURE PrintBitImageFile (Handle         : INTEGER;
  930.                                VAR FileName   : ARRAY OF CHAR;
  931.                                AspectRatio    : INTEGER (*0..1*);
  932.                                ScaleX         : INTEGER (*0..1*);
  933.                                ScaleY         : INTEGER (*0..1*);
  934.                                HorizAlignment : INTEGER (*0..2*);
  935.                                VertAlignment  : INTEGER (*0..2*);
  936.                                PointsXY       : ARRAY OF INTEGER);
  937.  
  938.     (* VDI-Funktionsnummer: 5, Escape: 23 *)
  939.  
  940.  
  941.   PROCEDURE InquirePrinter (Handle             : INTEGER;
  942.                             VAR Slices         : INTEGER;
  943.                             VAR SliceHeight    : INTEGER;
  944.                             VAR LineHeight     : INTEGER;
  945.                             VAR PageLines      : INTEGER;
  946.                             VAR DivisionFactor : INTEGER);
  947.  
  948.     (* VDI-Funktionsnummer: 5, Escape: 24 *)
  949.  
  950.  
  951.   PROCEDURE PrintAlphaText (Handle : INTEGER;
  952.                             Text   : ARRAY OF CHAR);
  953.  
  954.     (* VDI-Funktionsnummer: 5, Escape: 25 *)
  955.  
  956.  
  957.   PROCEDURE SelectPalette (Handle              : INTEGER;
  958.                            Palette             : INTEGER (*0..1*);
  959.                            VAR SelectedPalette : INTEGER);
  960.  
  961.     (* VDI-Funktionsnummer: 5, Escape: 60 *)
  962.  
  963.  
  964.   PROCEDURE GenerateTone (Handle    : INTEGER;
  965.                           Frequency : INTEGER;
  966.                           Duration  : INTEGER);
  967.  
  968.     (* VDI-Funktionsnummer: 5, Escape: 61 *)
  969.     (* Im ROM-Treiber nicht implementiert *)
  970.  
  971.  
  972.  
  973.   PROCEDURE SetToneFlag (Handle     : INTEGER;
  974.                          Action     : INTEGER (*-1..1*);
  975.                          VAR Status : INTEGER);
  976.  
  977.     (* VDI-Funktionsnummer: 5, Escape: 62 *)
  978.     (* Im ROM-Treiber nicht implementiert *)
  979.  
  980.   PROCEDURE SetTabletResolutionLPI (Handle             : INTEGER;
  981.                                     ResolutionX        : INTEGER;
  982.                                     ResolutionY        : INTEGER;
  983.                                     VAR SetResolutionX : INTEGER;
  984.                                     VAR SetResolutionY : INTEGER);
  985.  
  986.     (* VDI-Funktionsnummer: 5, Escape: 81 *)
  987.  
  988.  
  989.   PROCEDURE SetTabletResolutionLines (Handle             : INTEGER;
  990.                                       ResolutionX        : INTEGER;
  991.                                       ResolutionY        : INTEGER;
  992.                                       VAR SetResolutionX : INTEGER;
  993.                                       VAR SetResolutionY : INTEGER);
  994.  
  995.     (* VDI-Funktionsnummer: 5, Escape: 82 *)
  996.  
  997.   PROCEDURE SetTabletOrigin (Handle  : INTEGER;
  998.                              OriginX : INTEGER;
  999.                              OriginY : INTEGER);
  1000.  
  1001.     (* VDI-Funktionsnummer: 5, Escape: 83 *)
  1002.  
  1003.  
  1004.   PROCEDURE GetTabletDimensions (Handle         : INTEGER;
  1005.                                  VAR DimensionX : INTEGER;
  1006.                                  VAR DimensionY : INTEGER);
  1007.  
  1008.     (* VDI-Funktionsnummer: 5, Escape: 84 *)
  1009.  
  1010.  
  1011.   PROCEDURE SetTabletAlignment (Handle  : INTEGER;
  1012.                                 DeltaX : INTEGER;
  1013.                                 DeltaY : INTEGER);
  1014.  
  1015.     (* VDI-Funktionsnummer: 5, Escape: 85 *)
  1016.  
  1017.  
  1018.   PROCEDURE SetCameraFilm (Handle    : INTEGER;
  1019.                            FilmIndex : INTEGER;
  1020.                            Lightness : INTEGER (*-3..3*));
  1021.  
  1022.     (* VDI-Funktionsnummer: 5, Escape: 91 *)
  1023.  
  1024.  
  1025.   PROCEDURE InquireCameraFilmName (Handle       : INTEGER;
  1026.                                    FilmIndex    : INTEGER;
  1027.                                    VAR FilmName : ARRAY OF CHAR;
  1028.                                    VAR Status   : INTEGER);
  1029.  
  1030.     (* VDI-Funktionsnummer: 5, Escape: 92 *)
  1031.  
  1032.  
  1033.   PROCEDURE SetFilmExposure (Handle : INTEGER;
  1034.                              Expose : INTEGER);
  1035.  
  1036.     (* VDI-Funktionsnummer: 5, Escape: 93 *)
  1037.  
  1038.  
  1039.   PROCEDURE UpdateMetafileExtents (Handle : INTEGER;
  1040.                                    MinX   : INTEGER;
  1041.                                    MinY   : INTEGER;
  1042.                                    MaxX   : INTEGER;
  1043.                                    MaxY   : INTEGER);
  1044.  
  1045.     (* VDI-Funktionsnummer: 5, Escape: 98 *)
  1046.  
  1047.  
  1048.   PROCEDURE WriteMetafileItem (Handle        : INTEGER;
  1049.                                IntegerInSize : INTEGER;
  1050.                                VAR IntegerIn : ARRAY OF INTEGER;
  1051.                                PointsInSize  : INTEGER;
  1052.                                VAR PointsIn  : ARRAY OF INTEGER);
  1053.  
  1054.     (* VDI-Funktionsnummer: 5, Escape: 99 *)
  1055.  
  1056.  
  1057.   PROCEDURE SetPageSize (Handle     : INTEGER;
  1058.                          PageWidth  : INTEGER;
  1059.                          PageHeight : INTEGER);
  1060.  
  1061.     (* VDI-Funktionsnummer: 5, Escape: 99, Opcode: 0 *)
  1062.  
  1063.  
  1064.   PROCEDURE SetCoordinates (Handle : INTEGER;
  1065.                             LowerLeftX : INTEGER;
  1066.                             LowerLeftY : INTEGER;
  1067.                             UpperRightX : INTEGER;
  1068.                             UpperRightY : INTEGER);
  1069.  
  1070.     (* VDI-Funktionsnummer: 5, Escape: 99, Opcode: 1 *)
  1071.  
  1072.  
  1073.   PROCEDURE ChangeGemFileName (Handle       : INTEGER;
  1074.                                VAR FileName : ARRAY OF CHAR);
  1075.  
  1076.     (* VDI-Funktionsnummer: 5, Escape: 100 *)
  1077.  
  1078.  
  1079.   PROCEDURE SetLineOffset (Handle : INTEGER;
  1080.                            Offset : INTEGER);
  1081.  
  1082.     (* VDI-Funktionsnummer: 5, Escape: 101                       *)
  1083.     (* Nicht offiziell Dokumentiert. Benutzung auf eigene Gefahr *)
  1084.  
  1085.  
  1086.   PROCEDURE SetSystemFont (Handle      : INTEGER;
  1087.                            FontAddress : ADDRESS);
  1088.  
  1089.     (* VDI-Funktionsnummer: 5, Escape: 102                       *)
  1090.     (* Nicht offiziell Dokumentiert. Benutzung auf eigene Gefahr *)
  1091.  
  1092.  
  1093.   PROCEDURE Escape2000 (Handle : INTEGER;
  1094.                         Copies : INTEGER);
  1095.  
  1096.     (* VDI-Funktionsnummer: 5, Escape: 2000 *)
  1097.  
  1098.  
  1099.   (* -------------- VDI Globale Variablen & Aufrufprozedur --------------- *)
  1100.  
  1101.  
  1102.   PROCEDURE CallVDI;
  1103.  
  1104.  
  1105.   CONST
  1106.     MaxIntegerInSize  = 128;
  1107.     MaxIntegerOutSize = 128;
  1108.     MaxPointsInSize   = 128;
  1109.     MaxPointsOutSize  = 128;
  1110.  
  1111.  
  1112.   VAR
  1113.     Control    : ARRAY [0..11] OF INTEGER;
  1114.     IntegerIn  : ARRAY [0..MaxIntegerInSize  - 1] OF INTEGER;
  1115.     IntegerOut : ARRAY [0..MaxIntegerOutSize - 1] OF INTEGER;
  1116.     PointsIn   : ARRAY [0..MaxPointsInSize   - 1] OF INTEGER;
  1117.     PointsOut  : ARRAY [0..MaxPointsOutSize  - 1] OF INTEGER;
  1118.     Parameters : ARRAY [0..4] OF ADDRESS;
  1119.  
  1120.  
  1121. END VDI.
  1122.  
  1123.